package com.day17;

import org.junit.Test;

import java.time.*;
import java.util.Date;

/**
 * jdk 8 中日期时间API的测试
 */
public class JDK8DateTimeTest {

    /**
     * LocalDate,LocalTime,LocalDateTime的使用
     * 1.LocalDateTime相较于LocalDate,LocalTime使用频率更高
     */
    @Test
    public void test1() {
        //now():获取当前的日期时间等
        LocalDate localDate = LocalDate.now();
        LocalDateTime localDateTime = LocalDateTime.now();
        LocalTime localTime = LocalTime.now();

        System.out.println(localDate);
        System.out.println(localTime);
        System.out.println(localDateTime);

        //of():设置指定的年月日时分秒是没有偏离量的
        LocalDateTime localDateTime1 = LocalDateTime.of(2020, 12, 21, 12, 59, 59);
        System.out.println(localDateTime1);

        //getXxx():获取时间信息等，例如获取当月的第几天
        localDateTime.getDayOfWeek();
        localDateTime.getDayOfWeek();


        //withXxx():设置时间,体现不可变性,localDate是不变的,变化的是返回值，LocalDate具有不可变性
        LocalDate localDate1 = localDate.withDayOfMonth(22);
        System.out.println(localDate1);
    }


    @Test
    public void test2() {
        //now():获取本初子午线对应的标准时间
        Instant now = Instant.now();
        System.out.println(now);

        //添加时间的偏移量
        OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));
        System.out.println(offsetDateTime);


        //获取自1970年1月1日0时0分0秒(UTC)开始的毫秒数
        long toEpochMilli = now.toEpochMilli();
        System.out.println(toEpochMilli);

    }

    @Test
    public void testDate() {
        Date date = new Date(2020, 8, 8);
        System.out.println(date);
    }

}
